5a9943cf117e1d1f5c19e14ede5fb4fef58ca37c,src/main/java/com/github/shyiko/mysql/binlog/event/deserialization/AbstractRowsEventDataDeserializer.java,AbstractRowsEventDataDeserializer,deserializeDatetimeV2,#number#ByteArrayInputStream#,281

Before Change


        long datetime = bigEndianLong(inputStream.read(5), 0, 5);
        int yearMonth = extractBits(datetime, 1, 17, 40);
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, yearMonth / 13);
        c.set(Calendar.MONTH, yearMonth % 13 - 1);
        c.set(Calendar.DAY_OF_MONTH, extractBits(datetime, 18, 5, 40));
        c.set(Calendar.HOUR_OF_DAY, extractBits(datetime, 23, 5, 40));
        c.set(Calendar.MINUTE, extractBits(datetime, 28, 6, 40));
        c.set(Calendar.SECOND, extractBits(datetime, 34, 6, 40));
        c.set(Calendar.MILLISECOND, deserializeFractionalSeconds(meta, inputStream));
        return c.getTime();
    }

After Change


        */
        long datetime = bigEndianLong(inputStream.read(5), 0, 5);
        int yearMonth = bitSlice(datetime, 1, 17, 40);
        Long timestamp = asUnixTime(
            yearMonth / 13,
            yearMonth % 13,
            bitSlice(datetime, 18, 5, 40),
            bitSlice(datetime, 23, 5, 40),
            bitSlice(datetime, 28, 6, 40),
            bitSlice(datetime, 34, 6, 40),
            deserializeFractionalSeconds(meta, inputStream)
        );
        return timestamp != null ? new java.util.Date(timestamp) : null;
    }

    protected Serializable deserializeYear(ByteArrayInputStream inputStream) throws IOException {